#ifndef NOTEBOOKNAVIGATIONWINDOW_H
#define NOTEBOOKNAVIGATIONWINDOW_H

#include <QtGui/qstandarditemmodel.h>
#include "HeadFiles.h"
#include "FileManager.h"
#include "Config.h"

namespace hps {

class NoteBookNavigationWindow: public QWidget {
Q_OBJECT
public:
    NoteBookNavigationWindow();
    void init();
    void setUi();
    void rspFunc();
    // 获取noteBooks放进ActionList中
    QStandardItemModel *getNoteBooks();
    // 获取m_fileManager用于设置双击文件的槽函数
    FileManager *getFileManager() const { return m_fileManager; }
    void flush();
    QAction* getAddFileAction() const { return m_addFile; }
    QAction* getDeleteFileAction() const { return m_deleteFile; }
    void flushNoteBookChooser();
public slots:
    void clickItem(int index);
    // 右键点击文件管理器，展示菜单
    void showAndHandelFileManagerMenu(QTreeWidgetItem* _item);
    // 添加文件
    void addFile();
    // 删除文件
    void deleteFile();
    // 新建文件
    void addDir();
private:
    // 文件布局管理器
    QVBoxLayout *m_layout;
    QLabel *m_label;
    // 下拉单选框选择笔记本
    QComboBox *m_noteBookChooser;
    QStandardItemModel *m_mode;

    // 文件管理器的菜单
    QMenu *m_fileManagerMenu;
    QAction *m_addFile;
    QAction *m_deleteFile;
    QAction* m_addDir;
    TreeWidgetItem* m_tempItem;

    // 文件显示器
    FileManager *m_fileManager;
    // 正在被管理的文件夹
    std::string m_mgrDir;

    // 正在展示的导航页面id
    int m_opBookId = -1;
};

} // hps

#endif //NOTEBOOKNAVIGATIONWINDOW_H
